package jp.co.menox.tmserver.searchform.bollow;

import java.io.Serializable;

import com.google.appengine.api.datastore.Query;

import jp.co.menox.tmserver.searchform.TmServerSearchFormBase;

/**
 * 借りたいものを探す・検索条件form
 * @author
 *
 */
public class LendingSearchForm extends TmServerSearchFormBase implements Serializable {
    private static final long serialVersionUID = 1L;

    /** 初期表示と検索と区別するために定義：jspからcommand=searchと送り込む想定 */
    protected String command = null;
    
    // カテゴリ検索用１
    protected String canCate1Search = FLAG_STRING;  // 初期値：「検索条件として使用する」
    protected long cate1;
    protected String cate1Filter = Query.FilterOperator.EQUAL.name();

    // カテゴリ検索用２
    protected String canCate2Search = null;
    protected long cate2;
    protected String cate2Filter = Query.FilterOperator.EQUAL.name();

    // 名称検索用
    protected String canWordSearch = null;
    protected String searchWord = "";
    protected String wordMatcher = "EQUAL";
        // EQUAL（完全一致） or PARTIAL（部分一致）

    
    // **** 特殊なアクセッサ達（slim3仕様と検索formのやり方がそぐわない部分の補正）

    public String getCanCate1Search() {
        if (this.canCate1Search == null) {
            return null;
        }
        if (this.command != null && this.canCate1Search.equals(FLAG_STRING)) {
            // 検索（初期表示ではない）、かつフラグが初期値：　画面で入力されていない状態
            return null;
        }
        return canCate1Search;
    }
    public void setCanCate1Search(String canCate1Search) {
        this.canCate1Search = canCate1Search;
    }

    public String getCanCate2Search() {
        if (this.canCate2Search == null) {
            return null;
        }
        if (this.command != null && this.canCate2Search.equals(FLAG_STRING)) {
            // 検索（初期表示ではない）、かつフラグが初期値：　画面で入力されていない状態
            return null;
        }
        return canCate2Search;
    }
    public void setCanCate2Search(String canCate2Search) {
        this.canCate2Search = canCate2Search;
    }

    public String getCanWordSearch() {
        if (this.canWordSearch == null) {
            return null;
        }
        if (this.command != null && this.canWordSearch.equals(FLAG_STRING)) {
            // 検索（初期表示ではない）、かつフラグが初期値：　画面で入力されていない状態
            return null;
        }
        return canWordSearch;
    }
    public void setCanWordSearch(String canWordSearch) {
        this.canWordSearch = canWordSearch;
    }

    
    // **** 通常のアクセッサ達

    public String getCommand() {
        return command;
    }
    public void setCommand(String command) {
        this.command = command;
    }

    public long getCate1() {
        return cate1;
    }
    public void setCate1(long cate1) {
        this.cate1 = cate1;
    }

    public String getCate1Filter() {
        return cate1Filter;
    }
    public void setCate1Filter(String cate1Filter) {
        this.cate1Filter = cate1Filter;
    }

    public long getCate2() {
        return cate2;
    }
    public void setCate2(long cate2) {
        this.cate2 = cate2;
    }

    public String getCate2Filter() {
        return cate2Filter;
    }
    public void setCate2Filter(String cate2Filter) {
        this.cate2Filter = cate2Filter;
    }

    public String getSearchWord() {
        return searchWord;
    }
    public void setSearchWord(String searchWord) {
        this.searchWord = searchWord;
    }

    public String getWordMatcher() {
        return wordMatcher;
    }
    public void setWordMatcher(String wordMatcher) {
        this.wordMatcher = wordMatcher;
    }
    
}
